import lookup from './lookup.js';
import parseArray from './parseArray.js';

export default function renderTemplate(tokens,data){
    let res = ''
    for (let index = 0; index < tokens.length; index++) {
        const token = tokens[index];
        if(token[0] == 'text'){
            res+= token[1];
        }else if(token[0] == 'name'){
            // 如果是name类型，使用lookup函数查找对应的值。 -- 实际lookup 可以解决a.b.c嵌套的情况。 如果不包含a.b.c这种，就是直接查找data对象的属性值。
            res += lookup(data, token[1]) || ''; // 这里的token[1]是一个字符串，表示要查找的键名
        }else if(token[0] == '#'){
            // 如果是#类型，说明是一个数组，需要解析数组。
            res += parseArray(token, data); // 这里的token[1]是数组的键名，token[2]是数组项的模板
        }
    }
    return res;
}